import { presetMiniTargets } from './preset-mini-targets'

export const presetWind4Targets: string[] = [
  // Compatible with presetMiniTargets
  ...presetMiniTargets,

  // colors
  'text-red-500',
  'text-[red]/50', // Not theme color
  'text-[red]:50/display-p3',
  'text-red/display-p3',
  'text-red/$op-variable', // When the color components length = 2, the second variable is used as opacity
  'text-red/$op-variable/$method-variable',

  // font family
  'font-sans',
  'font-[custom-family-name]',
  'font-[family:custom-family-name]',
  'font-[family:$variable]',
  'font-[family:--variable]',

  // font-weight
  'font-200',
  'font-[200]',
  'font-[number:200]',
  'font-[number:$variable]',
  'font-[number:--variable]',
  'fw-200',
  'fw-$variable',

  // animation
  'keyframes-pulse',
  'keyframes-pulse-alt',
  'animate-keyframes-pulse',
  'animate-keyframes-pulse-alt',
  'animate-none',
  'animate-pulse',
  'animate-pulse-alt',
  'animate-duration-100ms',
  'animate-duration-100s',
  'animate-duration-100',
  'animate-duration-100.00',
  'animate-duration-100.02',
  'animate-duration-100.30',
  'animate-duration-100.32',
  'animate-delay--1.37',
  'animate-name-move',
  'animate-normal',
  'animate-paused',
  'animate-play-paused',
  'animate-play-state-running',
  'animate-state-running',
  'animate-mode-none',
  'animate-fill-mode-both',
  'animate-fill-backwards',
  'animate-reverse',
  'animate-direction-alternate-reverse',
  'animate-count-2.4',
  'animate-iteration-2',
  'animate-iteration-count-2',
  'animate-iteration-count-2-4-infinity',
  'animate-iteration-count-[2,4,infinity]',
  'animate-duration-$variable',
  'animate-delay-$variable',
  'animate-iteration-count-$variable',
  'animate-ease',
  'animate-ease-linear',
  'animate-ease-$variable',
  'animate-ease-[steps(4,_jump-start)]',
  'animate-$variable',
  'animate-[4s_linear_0s_infinite_alternate_move\\_eye]',
  'animate-inherit',
  'animate-unset',

  // background
  'bg-auto',
  'bg-cover',
  'bg-contain',
  'bg-size-[auto_100px]',
  'bg-blend-normal',
  'bg-blend-color-burn',
  'bg-blend-luminosity',
  'bg-blend-unset',
  'bg-bottom',
  'bg-clip-border',
  'bg-clip-text',
  'bg-clip-unset',
  'bg-fixed',
  'bg-linear-to-t',
  'bg-linear-to-tl',
  'bg-local',
  'bg-no-repeat',
  'bg-none',
  'bg-origin-border',
  'bg-origin-initial',
  'bg-repeat-space',
  'bg-repeat-revert',
  'bg-right-bottom',
  'bg-scroll',
  'bg-current',
  'bg-current/10',

  // bg gradient
  'from-current',
  'from-10%',
  'via-20%',
  'to-90%',
  'from-green-500',
  'from-green-500/50',
  'from-transparent',
  'from-$bg-from',
  'to-current',
  'to-green-500',
  'to-green-500/50',
  'to-transparent',
  'to-$bg-to',
  'via-current',
  'via-green-500',
  'via-green-500/30',
  'via-transparent',
  'via-$bg-via',
  'via-opacity-30',
  'from-current',
  'from-green-600',
  'from-green-600/60',
  'from-transparent',
  'to-current',
  'to-green-600',
  'to-green-600/60',
  'to-transparent',
  'via-current',
  'via-green-600',
  'via-green-600/40',
  'via-transparent',
  'via-opacity-40',
  'bg-linear-[70deg,blue,pink]',
  'stops-[blue,pink]',
  'bg-linear',
  'bg-radial',
  'bg-conic',
  'bg-conic-120',
  'bg-repeating-conic',
  'bg-gradient-to-r',

  // behaviors
  'list-none',
  'list-disc',
  'list-alpha',
  'list-greek',
  'list-outside',
  'list-disc-outside',
  'list-alpha-inside',
  'list-inherit',
  'list-image-[url(https://test.unocss.png)]',
  'list-image-none',
  'box-decoration-slice',
  'box-decoration-initial',
  'accent-op-90',
  'accent-red',
  'caret-op-90',
  'caret-red',
  'image-render-pixel',
  'overscroll-x-auto',
  'overscroll-y-unset',
  'overscroll-contain',
  'overscroll-none',
  'overscroll-revert-layer',
  'scroll-auto',
  'scroll-unset',
  'will-change-auto',
  'will-change-transform',
  'will-change-[margin,padding]',
  'will-change-[filter]',
  'will-change-$variable',

  // columns
  'columns-3',
  'columns-5em',
  'columns-auto',
  'columns-[3_auto]',
  'columns-[auto_13em]',
  'columns-[auto_auto]',
  'columns-unset',
  'break-before-avoid-page',
  'break-inside-avoid-column',
  'break-after-column',
  'break-before-initial',
  'break-inside-revert',
  'break-after-unset',

  // container
  //

  // divide
  'divide',
  'divide-y-4',
  'divide-x-4',
  'divide-x-reverse',
  'divide-block-4',
  'divide-inline-4',
  'divide-inline-reverse',
  'divide-green-500',
  'divide-opacity-50',
  'divide-dashed',
  'divide-dotted',
  'divide-ridge',
  'divide-transparent',
  'divide-current',
  'divide-none',
  'divide-x-none',
  'divide-inline-none',

  // filters
  'filter',
  'filter-none',
  'filter-blur',
  'filter-blur-md',
  'filter-blur-4',
  'filter-blur-none',
  'filter-unset',
  'blur',
  'blur-md',
  'blur-4',
  'blur-none',
  'brightness-0',
  'brightness-60',
  'contrast-125',
  'drop-shadow',
  'drop-shadow-[0_4px_3px_#000]',
  'drop-shadow-none',
  'drop-shadow-sm',
  'drop-shadow-sm/50',
  'drop-shadow-red-300',
  'drop-shadow-red-300/30',
  'drop-shadow-color-red-300',
  'drop-shadow-op-30',
  'drop-shadow-color-op-30',
  'grayscale',
  'grayscale-90',
  'hue-rotate-0',
  'hue-rotate-360',
  'invert',
  'invert-90',
  'saturate-0',
  'saturate-30',
  'saturate-120',
  'sepia',
  'sepia-80',

  // filters - backdrop
  'backdrop-filter',
  'backdrop-filter-none',
  'backdrop-filter-revert',
  'backdrop-blur',
  'backdrop-blur-md',
  'backdrop-blur-4',
  'backdrop-blur-none',
  'backdrop-brightness-0',
  'backdrop-brightness-60',
  'backdrop-contrast-125',
  'backdrop-grayscale',
  'backdrop-grayscale-90',
  'backdrop-hue-rotate-0',
  'backdrop-hue-rotate-360',
  'backdrop-invert',
  'backdrop-invert-90',
  'backdrop-opacity',
  'backdrop-opacity-90',
  'backdrop-saturate',
  'backdrop-saturate-30',
  'backdrop-saturate-120',
  'backdrop-sepia',
  'backdrop-sepia-80',

  // line clamp
  'line-clamp-7',
  'line-clamp-100',
  'line-clamp-none',
  'line-clamp-unset',

  // scrolls
  'snap-y',
  'snap-both',
  'snap-mandatory',
  'snap-none',
  'snap-center',
  'snap-align-none',
  'snap-always',
  'scroll-m-[3em]',
  'scroll-m-0',
  'scroll-m-1/2',
  'scroll-m-auto',
  'scroll-m-none',
  'scroll-p-2',
  'scroll-p-t-2',
  'scroll-p2',
  'scroll-pl-10px',
  'scroll-pt-2',
  'scroll-pt2',
  'scroll-pis-10px',
  'scroll-pbs-2',
  'scroll-pbs2',
  'scroll-p-inline-none',

  // shadow, spacing
  'shadow-2xs',
  'shadow-2xs/50',
  'shadow-red',
  'shadow-green-500/50',
  'inset-shadow-none',
  'mix-blend-normal',
  'mix-blend-hard-light',
  'mix-blend-plus-lighter',
  'mix-blend-revert',
  'space-y-none',
  'space-x-2',
  'space-y-4',
  'space-x-reverse',
  'space-x-$space',
  'space-x-[var(--space)]',
  'space-inline-2',
  'space-block-4',
  'space-block-none',
  'space-inline-reverse',
  'space-inline-$space',

  // static
  'capitalize',
  'normal-case',
  'hyphens-none',
  'hyphens-auto',
  'hyphens-unset',
  'write-normal',
  'write-orient-sideways',
  'write-unset',
  'write-orient-revert',
  'not-sr-only',
  'isolate',
  'isolate-auto',
  'isolation-auto',
  'object-none',
  'object-center',
  'object-ct',
  'object-cb',
  'object-center-top',
  'object-center-bottom',
  'object-[center_25%]',
  'collapse',

  // tables
  'border-collapse',
  'border-separate',
  'border-spacing-0',
  'border-spacing-none',
  'border-spacing-[3px]',
  'border-spacing-$var',
  'border-spacing-x-[3px]',
  'border-spacing-y-$var',
  'caption-top',
  'caption-bottom',
  'inline-table',
  'table',
  'table-auto',
  'table-caption',
  'table-empty-cells-visible',
  'table-empty-cells-hidden',
  'table-footer-group',
  'table-row-group',

  // position
  'top-1/2',

  // translate
  'translate-y-1/2',

  // touch-actions
  'touch-pan-left',
  'touch-pan-y',
  'touch-pinch-zoom',
  'touch-manipulation',
  'touch-none',
  'touch-initial',

  // typography
  'lining-nums',
  'normal-nums',
  'tabular-nums',

  // variables
  'bg-blend-$data',
  'divide-$variable',
  'divide-x-$variable',
  'divide-inline-$variable',
  'blur-$variable',
  'brightness-$variable',
  'contrast-$variable',
  'drop-shadow-$variable',
  'grayscale-$variable',
  'hue-rotate-$variable',
  'invert-$variable',
  'saturate-$variable',
  'sepia-$variable',
  'backdrop-opacity-$variable',
  'bg-image-$variable',
  'object-position-$variable',
  'object-$fit',

  // text-shadow
  'text-shadow-lg',
  'text-shadow-lg/50',
  'text-shadow-sky-300',
  'text-shadow-sky-300/30',
  'text-shadow-color-sky-300',
  'text-shadow-op-50',
  'text-shadow-color-op-50',

  // variants - dark/light
  '.dark:text-xl',
  '@dark:text-xl',
  'not-dark:text-xl',

  // variants combinators
  'svg:fill-red',

  // variants noscript & scripting
  'noscript:text-red-500',
  'scripting-none:text-red-500',
  'scripting-initial-only:text-red-500',
  'script-enabled:text-red-500',

  // variants supports: grid
  'supports-grid:block',

  // variants media: contrasts, motions, orientations
  'contrast-more:bg-black',
  'uno-layer-_pre:contrast-less:bg-gray-3',
  'motion-reduce:hover:translate-0',
  'motion-safe:transition',
  'portrait:hidden',
  'landscape:hidden',

  // variants placeholder
  'placeholder-red-400',
  'placeholder-inherit',

  // variants
  '!animate-ping',
  '-backdrop-hue-rotate-90',
  '-hue-rotate-90',
  '-hue-rotate--90',
  '-hue-rotate-[var(--for-hue,0.5turn)]',
  'hover:animate-bounce',

  '-scroll-mb-px',
  '-scroll-p-px',
  '-space-x-4',

  '*:data-[inline]:p-2',
  '*:data-[inline]:hover:p-2',
  '**:p-2',
  '**-p-2',
  '**:data-[inline]:p-2',
  '**:data-[inline]:hover:p-2',
  '**:hover:data-[inline]:p-2',
  '**:aria-[id=avatar]:p-2',
  '**:aria-[id=avatar]:hover:p-2',

  // variants experimental
  '@hover-text-red',
  '@hover:[[open]_&]:text-blue',

  // variants - multiple parents
  '@dark:contrast-more:p-10',

  // variants - aria
  'aria-hidden:hidden',
  'aria-[invalid=spelling]:underline-red-600',
  'aria-busy:text-green-600',
  'aria-busy:aria-pressed:text-green-600',
  'aria-busy:data-[bar]:text-green-600',

  // variants - data
  'data-[inline]:inline',
  'data-[invalid~=grammar]:underline-green-600',
  'data-[foo=x]:text-green-600',
  'data-[foo=x]:data-[bar=y]:text-green-600',
  'data-dropdown:ring-green',

  // view-transition
  'view-transition-foo',
  'view-transition-none',

  // dynamic viewport height
  'h-svh',
  'h-dvh',
  'h-lvh',
  'min-h-dvh',
  'min-h-lvh',
  'min-h-svh',
  'max-h-dvh',
  'max-h-svh',
  'max-h-lvh',

  // translate
  '-translate-y-50%',
  'translate-y--50%',

  // outline
  'outline-hidden',

  // accessibility
  'forced-colors:block',

  // color-scheme
  'color-scheme-dark-light',
  'color-scheme-light-dark',
  'color-scheme-dark',
  'color-scheme-light',
  'scheme-dark-light',
  'scheme-light-dark',
  'scheme-dark',
  'scheme-light',

  // grid
  'col-11',
  '-col-12',
  'col-span-$variable',
  'row-11',
  '-row-12',
  'row-span-$variable',

  // mask-clip
  'mask-clip-border',
  'mask-clip-padding',
  'mask-clip-content',
  'mask-clip-fill',
  'mask-clip-stroke',
  'mask-clip-view',
  'mask-no-clip',

  // mask-composite
  'mask-add',
  'mask-subtract',
  'mask-intersect',
  'mask-exclude',

  // mask-image
  'mask-[url(https://test.unocss.png)]',
  'mask-[var(--my-mask)]',
  'mask-none',
  'mask-l-from-50%',
  'mask-l-from-red-400',
  'mask-b-to-90%',
  'mask-x-from-70%',
  'mask-y-to-90%',
  'mask-linear-50',
  '-mask-linear-50',
  'mask-linear-from-1/3',
  'mask-linear-from-4',
  'mask-linear-from-60%',
  'mask-linear-from-60px',
  'mask-linear-from-#f90',
  'mask-linear-from-red-400',
  'mask-linear-to-80%',
  'mask-linear-[70deg,transparent_10%,black,transparent_80%]',
  'mask-linear-[var(--my-mask-linear)]',
  'mask-radial-4',
  'mask-radial-50%',
  'mask-radial-[100%_100%]',
  'mask-radial-from-75%',
  'mask-radial-at-left',
  'mask-radial-at-bottom-right',
  'mask-radial-circle',
  'mask-radial-ellipse',
  'mask-radial-closest-side',
  'mask-radial-closest-corner',
  'mask-radial-farthest-side',
  'mask-radial-farthest-corner',
  'mask-conic-25',
  '-mask-conic-25',
  'mask-conic-from-55%',
  'mask-conic-to-85%',

  // mask-mode
  'mask-alpha',
  'mask-luminance',
  'mask-match',

  // mask-origin
  'mask-origin-border',
  'mask-origin-padding',
  'mask-origin-content',
  'mask-origin-fill',
  'mask-origin-stroke',
  'mask-origin-view',

  // mask-position
  'mask-top',
  'mask-left',
  'mask-center',
  'mask-right',
  'mask-bottom',
  'mask-top-left',
  'mask-top-right',
  'mask-bottom-left',
  'mask-bottom-right',
  'mask-right-bottom',
  'mask-tl',
  'mask-tr',
  'mask-bl',
  'mask-br',
  'mask-tb',
  'mask-l',
  'mask-t',
  'mask-r',
  'mask-b',
  'mask-pos-[left_-10%_top_1rem]',
  'mask-position-[var(--my-mask-position)]',

  // mask-repeat
  'mask-repeat',
  'mask-no-repeat',
  'mask-repeat-x',
  'mask-repeat-y',
  'mask-repeat-space',
  'mask-repeat-round',

  // mask-size
  'mask-auto',
  'mask-cover',
  'mask-contain',
  'mask-size-4',
  'mask-size-[auto_1rem]',

  // mask-type
  'mask-type-alpha',
  'mask-type-luminance',

  // implicit group
  'in-[div]:bg-red-400',
  'in-[a>button:hover]:font-bold',
  'in-data-[state=closed]:border-5',
  'in-aria-[hidden=false]:font-21',

  // inert
  'inert:opacity-25',
]

export const presetWindNonTargets: string[] = [
  '[outline~="active\:none"]',
  '[i~="dark\:carbon-moon"]',
]
